package com.smedi.ismedi.constructionproject.core;

import com.smedi.ismedi.authoritymanagement.api.feign.RemoteAuthorityAccessFeignApi;
import com.smedi.ismedi.file.feign.RemoteFileFeignApi;
import com.smedi.ismedi.inmail.api.feign.RemoteProcessFeignApi;
import com.smedi.ismedi.inmail.api.feign.RemoteTaskFeignApi;
import com.smedi.ismedi.notification.api.feign.RemoteSmsNotificationFeignApi;
import com.smedi.ismedi.organization.api.feign.RemoteHrOrganizationFeignApi;
import com.smedi.ismedi.organization.api.feign.RemoteProjectOrganizationFeignApi;
import com.smedi.ismedi.personnel.api.feign.RemotePersonCoreFeignApi;
import com.smedi.ismedi.personnel.api.feign.RemotePersonValidateFeignApi;
import com.smedi.ismedi.video.monitor.api.feign.RemoteMonitorSettingFeignApi;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.scheduling.annotation.EnableAsync;

/**
 * @Author: xulinjun
 * @Date: 2021-6-4 15:31
 */
@SpringBootApplication(scanBasePackages={"com.smedi.ismedi"})
@EnableDiscoveryClient
@MapperScan({"com.smedi.ismedi.constructionproject.core.port.adapter.persistence.mybatis.mapper"})
@EnableFeignClients(basePackages = {
        "com.smedi.ismedi.organization.api.feign",
        "com.smedi.ismedi.personnel.api.feign",
        "com.smedi.ismedi.authoritymanagement.api.feign",
        "com.smedi.ismedi.video.monitor.api.feign"
}, basePackageClasses = {
        RemoteProjectOrganizationFeignApi.class,
        RemoteHrOrganizationFeignApi.class,
        RemotePersonCoreFeignApi.class,
        RemotePersonValidateFeignApi.class,
        RemoteAuthorityAccessFeignApi.class,
        RemoteFileFeignApi.class,
        RemoteHrOrganizationFeignApi.class,
        RemoteProcessFeignApi.class,
        RemoteTaskFeignApi.class,
        RemoteSmsNotificationFeignApi.class,
        RemoteMonitorSettingFeignApi.class,
})
@EnableAsync
public class ISmediConstructionProjectCoreApplication {
    public static void main(String[] args) {
        SpringApplication.run(ISmediConstructionProjectCoreApplication.class, args);
    }
}
